// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.google.gson.internal.bind; import com.google.gson.Gson; import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.internal.LinkedTreeMap; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; import java.util.ArrayList; import java.util.List; import java.util.Map; // Referenced classes of package com.google.gson.internal.bind: // g, h public final class ObjectTypeAdapter extends TypeAdapter { public static final TypeAdapterFactory FACTORY = new g(); private final Gson a; private ObjectTypeAdapter(Gson gson) { a = gson; } ObjectTypeAdapter(Gson gson, g g1) { this(gson); } public Object read(JsonReader jsonreader) { JsonToken jsontoken = jsonreader.peek(); switch (h.a[jsontoken.ordinal()]) { default: throw new IllegalStateException(); case 1: // '\001' ArrayList arraylist = new ArrayList(); jsonreader.beginArray(); for (; jsonreader.hasNext(); arraylist.add(read(jsonreader))) { } jsonreader.endArray(); return arraylist; case 2: // '\002' LinkedTreeMap linkedtreemap = new LinkedTreeMap(); jsonreader.beginObject(); for (; jsonreader.hasNext(); linkedtreemap.put(jsonreader.nextName(), read(jsonreader))) { } jsonreader.endObject(); return linkedtreemap; case 3: // '\003' return jsonreader.nextString(); case 4: // '\004' return Double.valueOf(jsonreader.nextDouble()); case 5: // '\005' return Boolean.valueOf(jsonreader.nextBoolean()); case 6: // '\006' jsonreader.nextNull(); return null; } } public void write(JsonWriter jsonwriter, Object obj) { if (obj == null) { jsonwriter.nullValue(); return; } TypeAdapter typeadapter = a.getAdapter(obj.getClass()); if (typeadapter instanceof ObjectTypeAdapter) { jsonwriter.beginObject(); jsonwriter.endObject(); return; } else { typeadapter.write(jsonwriter, obj); return; } } }